Load Libraries and set a seed

library(Seurat)
library(ggplot2)
library(here)
library(dplyr)
set.seed(9)

Load data and reference

load(file = here("data/annotated.seurat.rds"))

# checking your cells is always a good place to start
integrated.seurat
An object of class Seurat 
34285 features across 26254 samples within 2 assays 
Active assay: RNA (32285 features, 3000 variable features)
 9 layers present: counts.KZ1, counts.KZ2, counts.KZ3, counts.KZ4, data.KZ1, data.KZ2, data.KZ3, data.KZ4, scale.data
 1 other assay present: mnn.reconstructed
 10 dimensional reductions calculated: pca, umap.unintegrated, cca, umap.cca, rpca, umap.rpca, harmony, umap.harmony, mnn, umap.mnn
DimPlot(integrated.seurat, reduction = "umap.harmony", group.by = "prediction", label=TRUE)

DimPlot(integrated.seurat, reduction = "umap.harmony", group.by = "harmony.clusters", label=TRUE)

Subset out the clusters that are of the myeloid lineage

# lets refer back to the our cluster annotation plot
knitr::include_graphics(here("plots/4.annotation/ClusterAnnotation.png"))


# which clusters are myeloid cells? 
myeloid <- subset(integrated.seurat, harmony.clusters %in% c("0", "6", "13", "17", "19"))

DimPlot(myeloid, reduction = "umap.harmony", group.by = "prediction", label=TRUE)

DimPlot(myeloid, reduction = "umap.harmony", group.by = "harmony.clusters", label=TRUE)


# re-cluster the subset (NOTE THE OBJECT CANNOT BE JOINED ALREADY OR IT WON'T PROPERLY CLUSTER)

DefaultAssay(myeloid) <- "RNA"
myeloid <- FindVariableFeatures(myeloid)
Finding variable features for layer counts.KZ1
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.KZ2
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.KZ3
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.KZ4
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
myeloid <- RunPCA(myeloid)
Warning in PrepDR5(object = object, features = features, layer = layer,  :
  The following features were not available: S100a10, Rabgap1l, Tubb4b, Airn, Cd2, Setbp1, Lat, Gimap6, Mllt3, Tcf4, Gimap4, Prdx1, Smc4, Fchsd2, Gimap1, Ly75, Cdc25b, Apbb2, Txn1, Rfx2, Plekha5, Grk5, Dennd5b, Ahnak, Carmil1, Ube2s, Itpr1, Tagln2, Phlpp1, Slc4a8, Dnah8, Ablim1, Lrrk2, Dok2, AY036118, Rtl8b, Plcb4, H2afv, Tspan3, Pdzd4, Gpr171, Nck2, Ran, Zfyve9, Sept1, Lyst, Pcna, Ptma, Ranbp1, H2-Q7, Serpina3g, Cd28, H2-Eb2, Ubash3a, Tgm2, Rtl8a, Ccdc162, Tgfbr3, Tex2, Abtb2, Gnb4, Gimap3, Ppp1r16b, Glipr2, Ceacam1, Jak2, Immp2l, Sqstm1, Mcm7, Gm4107, Fgfr1, Cd38, Dennd4a, Cdon, Hist1h1e, Hist1h4d, Gmnn, Zap70, Ftl1, Prtn3, Add3, Gcnt2, Eef1b2, Socs1, Ece1, Smpdl3a, Sh3bgr, Cldn1, Sept6, Slfn5, Chst2, Tespa1, Hmgn3, Ccnd2, Fyn, Arhgap26, Ifi203, Tmpo, Actg1, Arap2, Adgre5, 4930523C07Rik, Herc6, Zdhhc14, Gm8251, Lrba, Mmp25, Bhlhe40, Itga4, Flnb, Ncl, Idi1, Ccrl2, Myo1e, Olfr164, Dusp5, Tnfaip2, Dctpp1, Spc25, Pole, Gm11837, Bbs9, Nasp, Rasgrp2, Cblb, Set, Pdia5, Dhfr, Gimap9, Hspe1, Gi [... truncated]
PC_ 1 
Positive:  Lyz2, Plbd1, C1qc, C1qb, C1qa, Cst3, Ms4a7, Wfdc17, Ms4a6c, Mctp1 
       Psap, Tgfbi, Cd72, Hpgd, Cd300a, Clec4a2, Cd86, Cdk14, Clec4b1, C3ar1 
       Cd14, Cadm1, Mrc1, Ctsb, Ccl6, Tgfbr1, Apoe, Sirpb1a, Mgl2, Creb5 
Negative:  Atxn1, Timp3, Ptprg, Ly6a, Pde4d, Magi1, St6galnac3, Pard3b, Cobll1, Nbea 
       Prkca, Ebf1, Shroom4, Etl4, Meis2, Col4a1, Plpp3, Rapgef4, Adgrl2, Pakap.1 
       Dnm3, Galnt18, Atp1b1, Sntb1, Ldhb, Skap1, Pecam1, Samd12, Ldb2, Stk39 
PC_ 2 
Positive:  Ifitm6, Adgre4, Gpr141, Apoc2, Ear2, Treml4, Ace, Sirpb1c, Plac8, Nr4a1 
       Cd300e, Eno3, Cd244a, Gm21188, Ldlrad3, F10, S100a4, Hp, Cebpb, Gm15987 
       Gm5150, Msrb1, Emilin2, Fgr, Arhgef37, Serpinb2, Tppp3, Gda, Gsr, Gm9733 
Negative:  C1qa, C1qc, C1qb, Ms4a7, Creb5, C3ar1, Cadm1, Cd72, Itga9, Mrc1 
       Cd14, Col14a1, Negr1, Plxdc2, Aoah, Mgl2, Rbpj, Zmynd15, Ccl12, Agmo 
       Tgfbr1, Ptchd1, Pf4, Selenop, Rab7b, Mmp13, Hdac9, Psd3, Mir99ahg, Ch25h 
PC_ 3 
Positive:  Adgre4, Apoc2, Ace, Cebpb, Cd300e, Nr4a1, Treml4, Ear2, Ldlrad3, Pla2g7 
       F10, Gm21188, Apoe, Eno3, Cd300a, Pparg, Lrp1, Lyz2, Ifitm6, Tnfrsf1b 
       Hp, Gm5150, Sirpb1c, Arhgef37, Fam49a, Gngt2, Ms4a4a, Trem3, Emilin2, Gsr 
Negative:  Birc5, Top2a, Pclaf, Mki67, Kif11, Cdca8, Tpx2, Nusap1, Knl1, Ccna2 
       Neil3, Kif4, Cdca3, Cdk1, Ube2c, Cenpe, Aurkb, Hmmr, Kif15, Cenpf 
       Hist1h1b, Cks1b, Spc24, Prc1, Ckap2l, Ccnb2, Rrm2, Stmn1, Hist1h2ae, Cdca2 
PC_ 4 
Positive:  Flt3, Xcr1, Htr7, Sept3, Ifi205, Snx22, Gcsam, Ffar4, Tlr11, Jaml 
       Gm43914, Naaa, Fndc7, Clec9a, Gpr141b, Cd209a, Kctd14, Gm36723, H2-Oa, Klri1 
       Pkib, Srgap3, Rnase6, Hepacam2, Dpp4, Wdfy4, Tbc1d9, Olfm1, Cyp8b1, Rgs18 
Negative:  Apoe, Pla2g7, Cebpb, Adgre4, Apoc2, Top2a, Birc5, Pf4, Msr1, Nusap1 
       Kif11, Trem2, Cd300e, Fcrls, Ace, C5ar1, Gm21188, Mki67, Prc1, Ctsb 
       Hmmr, Lrp1, Kif4, Lgmn, Cenpf, Neil3, Lyz2, Ccna2, Ckap2l, Selenop 
PC_ 5 
Positive:  Cd300e, Treml4, Xcr1, Eno3, Adgre4, Ace, Ear2, Gm43914, Pparg, Cd36 
       Gcsam, Cadm1, Dusp16, Nr4a1, Ccdc192, Clec9a, Snx22, Havcr2, Tgfbr1, Tlr11 
       Rap1gap2, Gpr141b, Cdk14, Ifi205, Pglyrp1, Gm17749, Itgal, Itga8, Ldlrad3, Cyp8b1 
Negative:  Clec10a, Cfp, Cd209a, Ifi30, Olfm1, Ccl9, Ms4a6d, Ms4a4c, Fn1, Trem2 
       Fcrls, Bex6, S100a4, Ccr2, Ctnnd2, Lgals1, Ccr1, S100a6, Rnd3, Ccl8 
       Vim, Clec4a2, Klrd1, Wfdc17, Ms4a6c, Kmo, Ccl2, Emb, Gm16553, Pf4 
myeloid <- RunUMAP(myeloid, reduction = "pca", dims = 1:40)
16:24:20 UMAP embedding parameters a = 0.9922 b = 1.112
16:24:20 Read 6086 rows and found 40 numeric columns
16:24:20 Using Annoy for neighbor search, n_neighbors = 30
16:24:20 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
16:24:20 Writing NN index file to temp file /var/folders/tp/z4kv_q0d5j98lblm0rx44pl40000gr/T//RtmpyaYa3j/file239752ba834b
16:24:20 Searching Annoy index using 1 thread, search_k = 3000
16:24:21 Annoy recall = 100%
16:24:21 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 30
16:24:22 Initializing from normalized Laplacian + noise (using RSpectra)
16:24:22 Commencing optimization for 500 epochs, with 259386 positive edges
Using method 'umap'
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
16:24:27 Optimization finished
myeloid <- FindNeighbors(myeloid, reduction = "harmony", dims = 1:40)
Computing nearest neighbor graph
Computing SNN
myeloid <- FindClusters(myeloid, resolution = 0.2)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 6086
Number of edges: 226611

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.9320
Number of communities: 10
Elapsed time: 0 seconds
myeloid
An object of class Seurat 
34285 features across 6086 samples within 2 assays 
Active assay: RNA (32285 features, 2000 variable features)
 9 layers present: counts.KZ1, counts.KZ2, counts.KZ3, counts.KZ4, data.KZ1, data.KZ2, data.KZ3, data.KZ4, scale.data
 1 other assay present: mnn.reconstructed
 11 dimensional reductions calculated: pca, umap.unintegrated, cca, umap.cca, rpca, umap.rpca, harmony, umap.harmony, mnn, umap.mnn, umap
table(myeloid$prediction)

     arteriole        B cells      capillary dendritic cell          ILC2s     macrophage    Mixed S1_S2       monocyte    Neutrophils 
             7            166              7           2263             28           2708             10            845              7 
      NK cells      Pericytes      Podocytes         T cell 
             1              5              2             37 
DimPlot(myeloid, reduction = "umap", group.by = "seurat_clusters")

DimPlot(myeloid, reduction = "umap", group.by = "prediction")

NA
NA

Subset out just the myeloid lineage cells

table(integrated.seurat$prediction)

         arteriole            B cells          capillary     dendritic cell        fibroblasts              ILC2s Intercalated cells 
              2073               3806               3101               2326                 69               1719                602 
              limb         macrophage        Mixed S1_S2           monocyte        Neutrophils           NK cells          Pericytes 
               117               2709               2866                863                561                392               1148 
         Podocytes    Principal cells             T cell             tubule 
               157                741               1998               1006 
myeloid <- subset(integrated.seurat, prediction %in% c("dendritic cell", "macrophage", "monocyte"))

DimPlot(myeloid, reduction = "umap.harmony", group.by = "prediction", label=TRUE)


# re-cluster the subset (NOTE THE OBJECT CANNOT BE JOINED ALREADY OR IT WON'T PROPERLY CLUSTER)

DefaultAssay(myeloid) <- "RNA"
myeloid <- FindVariableFeatures(myeloid)
Finding variable features for layer counts.KZ1
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.KZ2
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.KZ3
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.KZ4
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
myeloid <- RunPCA(myeloid)
Warning in PrepDR5(object = object, features = features, layer = layer,  :
  The following features were not available: S100a10, Airn, Rabgap1l, Mllt3, Prdx1, Setbp1, Ly75, Fchsd2, Plekha5, Ahnak, Grk5, Tubb4b, Tagln2, Apbb2, Txn1, Dok2, Itpr1, Smc4, Rfx2, Slc4a8, AY036118, Rtl8b, Tspan3, Phlpp1, H2-Eb2, Lrrk2, Abtb2, Zfyve9, Tgfbr3, Nck2, Jak2, Lyst, Gpr171, Mcm7, Cdon, Ptma, Rtl8a, Glipr2, Ranbp1, Immp2l, Rai14, H2afv, Fgfr1, Tgm2, Gcnt2, Ran, Sept6, Cd38, Socs1, Ece1, Gm11837, Plcb4, Cldn1, Gm4107, Ccnd2, Gmnn, Add3, Flnb, Dennd4a, Ube2s, Smpdl3a, Carmil1, Ccrl2, Pdia5, Eef1b2, Ftl1, Lrba, Slfn5, Dusp5, Bbs9, Pcna, Hmgn3, Slc44a4, Actg1, Lima1, Ccne2, Idi1, Ifnlr1, Arhgap5, Bhlhe40, Arhgap26, Mmp25, Adgre5, Ifi47, Cdk2ap2, Myo1e, Rasgrp2, Ifi203, Tnfaip2, Cpne8, Itga4, Pcgf5, Dctpp1, Cblb, Hmgcs1, Cyth3, Serpina3g, Cenpm, Wwox, H2-Q7, Tmpo, Psmb9, Pole, Lrrc1, Rab30, Tiam2, Malt1, Dennd5b, Itsn1, Zdhhc14, Ppef2, Pianp, Kcnip3, Nfkbia, Rbpms, Ung, Xylt1, Kcnn4, Gm26535, Acyp2, Tmlhe, Herc6, Sub1, Atrnl1, Anp32b, Fry, Hspa8, Itga1, Net1, Chst11, Myo9a, Ccdc88c [... truncated]
PC_ 1 
Positive:  Atxn1, Ly6a, Pde4d, Pard3b, Prkca, Ebf1, Shroom4, Meis2, Rapgef4, Pakap.1 
       Adgrl2, Sntb1, Skap1, Pecam1, Pbx1, Stk39, Esrrg, Ptprb, Tox, Prkcq 
       Glis3, Spp1, Plcb1, Bcl11b, Plpp1, Ntn4, Heg1, Tnik, Nr3c2, Flt1 
Negative:  Lyz2, Aif1, C1qc, C1qb, Plbd1, C1qa, Ms4a7, Trf, Cst3, Wfdc17 
       Alox5ap, Ms4a6c, Fcgr1, Mctp1, Cd72, Tgfbi, Psap, Hpgd, Clec4a2, C3ar1 
       Cd14, Clec4b1, Cd86, Mrc1, Cd300a, Cadm1, Ctsb, Cdk14, Ccl6, Mgl2 
PC_ 2 
Positive:  Ifitm6, Adgre4, Gpr141, Apoc2, Ear2, Treml4, Ace, Sirpb1c, Nr4a1, Cd300e 
       Plac8, Eno3, Gm21188, F10, Cd244a, Ldlrad3, Hp, Cebpb, Gm5150, S100a4 
       Fgr, Msrb1, Emilin2, Gm15987, Arhgef37, Serpinb2, Tppp3, Gda, Gsr, Gm9733 
Negative:  C1qa, C1qc, C1qb, Ms4a7, Slco2b1, Creb5, Cadm1, Cd72, C3ar1, Itga9 
       Mrc1, Cd14, Plxdc2, Negr1, Mgl2, Aoah, Rbpj, Trf, Zmynd15, Aif1 
       Ccl12, Hs3st3a1, Agmo, Ptchd1, Pf4, Tgfbr1, Rab7b, Selenop, Psd3, Hdac9 
PC_ 3 
Positive:  Flt3, Xcr1, Sept3, Ifi205, Htr7, Snx22, Gcsam, Ffar4, Tlr11, Jaml 
       Naaa, Cd209a, Kctd14, Tnni2, Fndc7, Olfm1, Gpr141b, Gm36723, H2-Oa, Pkib 
       Klri1, Gm43914, Srgap3, Clec9a, Hepacam2, Tbc1d9, Wdfy4, Dpp4, Rgs18, Cyp8b1 
Negative:  Apoe, Adgre4, Pla2g7, Apoc2, Cebpb, Ace, Cd300e, Ctsb, C5ar1, Gm21188 
       Ldlrad3, Lyz2, Msr1, Pparg, Lrp1, Ms4a7, Nr4a1, Selenop, Tnfrsf1b, F10 
       Lgmn, Ms4a4a, Eno3, Hpgd, Treml4, C1qc, C1qa, Pilra, Gngt2, C1qb 
PC_ 4 
Positive:  Birc5, Pclaf, Top2a, Mki67, Cdca8, Kif11, Nusap1, Aurkb, Neil3, Ccna2 
       Cdca3, Knl1, Ckap2l, Kif15, Cdk1, Spc24, Tpx2, Stmn1, Cenpe, Kif4 
       Hmmr, Hist1h2ae, Pbk, Cks1b, Ube2c, Bub1, Prc1, Sgo1, Cenpf, Cdca2 
Negative:  Gm43914, Xcr1, Flt3, Tlr11, Clec9a, Snx22, Gcsam, Rnase6, Fndc7, Cadm1 
       Htr7, Ffar4, Ifi205, Mctp1, Sept3, Slamf7, Wdfy4, Hepacam2, Gpr141b, Havcr2 
       Dpp4, Cyp8b1, Gm36723, Adam23, Tbc1d9, Dnase1l3, Itga8, Gm45238, Ptchd1, Plbd1 
PC_ 5 
Positive:  Clec10a, F13a1, Cd209a, Cfp, Ifi30, Olfm1, Fn1, Ccl9, Ms4a4c, Ms4a6d 
       Trem2, Ccr2, S100a4, Fcrls, Bex6, Ccr1, Chil3, Rnd3, Vcan, Ccl8 
       Vim, Ctnnd2, Lgals1, Kmo, Klrd1, Wfdc17, Klri1, Ms4a6c, Gm16553, Emb 
Negative:  Cd300e, Treml4, Eno3, Adgre4, Ear2, Ace, Pparg, Dusp16, Nr4a1, Ccdc192 
       Cd36, Cadm1, Xcr1, Tgfbr1, Rap1gap2, Havcr2, Pglyrp1, Cdk14, Gm17749, Gm43914 
       Itgal, Ldlrad3, Dnah12, Clec9a, Gcsam, Slc12a2, Fam49a, Apoc2, Itga8, Skint3 
myeloid <- RunUMAP(myeloid, reduction = "pca", dims = 1:40)
16:24:36 UMAP embedding parameters a = 0.9922 b = 1.112
16:24:36 Read 5898 rows and found 40 numeric columns
16:24:36 Using Annoy for neighbor search, n_neighbors = 30
16:24:36 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
16:24:36 Writing NN index file to temp file /var/folders/tp/z4kv_q0d5j98lblm0rx44pl40000gr/T//RtmpyaYa3j/file23975301db5b
16:24:36 Searching Annoy index using 1 thread, search_k = 3000
16:24:37 Annoy recall = 100%
16:24:37 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 30
16:24:38 Initializing from normalized Laplacian + noise (using RSpectra)
16:24:38 Commencing optimization for 500 epochs, with 250938 positive edges
Using method 'umap'
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
16:24:43 Optimization finished
myeloid <- FindNeighbors(myeloid, reduction = "harmony", dims = 1:40)
Computing nearest neighbor graph
Computing SNN
myeloid <- FindClusters(myeloid, resolution = 0.2)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 5898
Number of edges: 219144

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.9291
Number of communities: 10
Elapsed time: 0 seconds
myeloid
An object of class Seurat 
34285 features across 5898 samples within 2 assays 
Active assay: RNA (32285 features, 2000 variable features)
 9 layers present: counts.KZ1, counts.KZ2, counts.KZ3, counts.KZ4, data.KZ1, data.KZ2, data.KZ3, data.KZ4, scale.data
 1 other assay present: mnn.reconstructed
 11 dimensional reductions calculated: pca, umap.unintegrated, cca, umap.cca, rpca, umap.rpca, harmony, umap.harmony, mnn, umap.mnn, umap
table(myeloid$harmony.clusters)

   0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26 
3004    0    3    0    0    9 1192   31    1    0    0    0    1  688   15   19    0  531    0  401    0    0    2    0    0    0    1 
  27 
   0 
DimPlot(myeloid, reduction = "umap", group.by = "seurat_clusters")

DimPlot(myeloid, reduction = "umap", group.by = "prediction")

sessionInfo()
R version 4.4.1 (2024-06-14)
Platform: aarch64-apple-darwin20
Running under: macOS Sonoma 14.5

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/Chicago
tzcode source: internal

attached base packages:
[1] stats4    stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] future_1.49.0               dplyr_1.1.4                 here_1.0.1                  ggplot2_3.5.2              
 [5] Seurat_5.2.1                SeuratObject_5.0.2          sp_2.1-4                    SingleCellExperiment_1.26.0
 [9] SummarizedExperiment_1.34.0 Biobase_2.64.0              GenomicRanges_1.56.2        GenomeInfoDb_1.40.1        
[13] IRanges_2.38.1              MatrixGenerics_1.16.0       matrixStats_1.5.0           S4Vectors_0.42.1           
[17] BiocGenerics_0.50.0        

loaded via a namespace (and not attached):
  [1] RColorBrewer_1.1-3      rstudioapi_0.17.1       jsonlite_2.0.0          magrittr_2.0.3          spatstat.utils_3.1-2   
  [6] rmarkdown_2.29          farver_2.1.2            ragg_1.3.3              zlibbioc_1.50.0         vctrs_0.6.5            
 [11] ROCR_1.0-11             spatstat.explore_3.3-4  htmltools_0.5.8.1       S4Arrays_1.4.1          SparseArray_1.4.8      
 [16] sass_0.4.10             sctransform_0.4.1       parallelly_1.45.0       bslib_0.9.0             KernSmooth_2.23-26     
 [21] htmlwidgets_1.6.4       ica_1.0-3               plyr_1.8.9              cachem_1.1.0            plotly_4.10.4          
 [26] zoo_1.8-12              igraph_2.1.4            mime_0.13               lifecycle_1.0.4         pkgconfig_2.0.3        
 [31] Matrix_1.7-2            R6_2.6.1                fastmap_1.2.0           GenomeInfoDbData_1.2.12 fitdistrplus_1.2-2     
 [36] shiny_1.10.0            digest_0.6.37           colorspace_2.1-1        patchwork_1.3.0         rprojroot_2.0.4        
 [41] tensor_1.5              RSpectra_0.16-2         irlba_2.3.5.1           textshaping_1.0.0       labeling_0.4.3         
 [46] progressr_0.15.1        spatstat.sparse_3.1-0   httr_1.4.7              polyclip_1.10-7         abind_1.4-8            
 [51] compiler_4.4.1          withr_3.0.2             fastDummies_1.7.5       MASS_7.3-64             DelayedArray_0.30.1    
 [56] tools_4.4.1             lmtest_0.9-40           httpuv_1.6.16           future.apply_1.11.3     goftest_1.2-3          
 [61] glue_1.8.0              nlme_3.1-167            promises_1.3.3          grid_4.4.1              Rtsne_0.17             
 [66] cluster_2.1.8           reshape2_1.4.4          generics_0.1.3          gtable_0.3.6            spatstat.data_3.1-4    
 [71] tidyr_1.3.1             data.table_1.17.0       utf8_1.2.4              XVector_0.44.0          spatstat.geom_3.3-5    
 [76] RcppAnnoy_0.0.22        ggrepel_0.9.6           RANN_2.6.2              pillar_1.10.1           stringr_1.5.1          
 [81] spam_2.11-1             RcppHNSW_0.6.0          later_1.4.2             splines_4.4.1           lattice_0.22-6         
 [86] survival_3.8-3          deldir_2.0-4            tidyselect_1.2.1        miniUI_0.1.1.1          pbapply_1.7-2          
 [91] knitr_1.50              gridExtra_2.3           scattermore_1.2         xfun_0.52               stringi_1.8.4          
 [96] UCSC.utils_1.0.0        yaml_2.3.10             lazyeval_0.2.2          evaluate_1.0.4          codetools_0.2-20       
[101] tibble_3.2.1            cli_3.6.5               uwot_0.2.2              systemfonts_1.2.1       xtable_1.8-4           
[106] reticulate_1.42.0       jquerylib_0.1.4         munsell_0.5.1           Rcpp_1.0.14             globals_0.18.0         
[111] spatstat.random_3.3-2   png_0.1-8               spatstat.univar_3.1-1   parallel_4.4.1          dotCall64_1.2          
[116] listenv_0.9.1           viridisLite_0.4.2       scales_1.3.0            ggridges_0.5.6          purrr_1.0.4            
[121] crayon_1.5.3            rlang_1.1.6             cowplot_1.1.3          
LS0tCnRpdGxlOiAiRDIgLy8gQnJlYWtvdXQgU2Vzc2lvbiA3IC8vIFN1YmNsdXN0ZXJpbmciCm91dHB1dDogaHRtbF9ub3RlYm9vawphdXRob3I6ICJMaW5kc2F5IE4uIEhheWVzIgpkYXRlOiAiMTItMTAtMjAyNSIKZWRpdG9yX29wdGlvbnM6IAogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUKLS0tCgoKIyMgTG9hZCBMaWJyYXJpZXMgYW5kIHNldCBhIHNlZWQKYGBge3IsIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoaGVyZSkKbGlicmFyeShkcGx5cikKc2V0LnNlZWQoOSkKYGBgCgoKIyMgTG9hZCBkYXRhIGFuZCByZWZlcmVuY2UKYGBge3J9CmxvYWQoZmlsZSA9IGhlcmUoImRhdGEvYW5ub3RhdGVkLnNldXJhdC5yZHMiKSkKCiMgY2hlY2tpbmcgeW91ciBjZWxscyBpcyBhbHdheXMgYSBnb29kIHBsYWNlIHRvIHN0YXJ0CmludGVncmF0ZWQuc2V1cmF0CkRpbVBsb3QoaW50ZWdyYXRlZC5zZXVyYXQsIHJlZHVjdGlvbiA9ICJ1bWFwLmhhcm1vbnkiLCBncm91cC5ieSA9ICJwcmVkaWN0aW9uIiwgbGFiZWw9VFJVRSkKRGltUGxvdChpbnRlZ3JhdGVkLnNldXJhdCwgcmVkdWN0aW9uID0gInVtYXAuaGFybW9ueSIsIGdyb3VwLmJ5ID0gImhhcm1vbnkuY2x1c3RlcnMiLCBsYWJlbD1UUlVFKQpgYGAKCgoKIyMgU3Vic2V0IG91dCB0aGUgY2x1c3RlcnMgdGhhdCBhcmUgb2YgdGhlIG15ZWxvaWQgbGluZWFnZQpgYGB7cn0KIyBsZXRzIHJlZmVyIGJhY2sgdG8gdGhlIG91ciBjbHVzdGVyIGFubm90YXRpb24gcGxvdAprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlKCJwbG90cy80LmFubm90YXRpb24vQ2x1c3RlckFubm90YXRpb24ucG5nIikpCgojIHdoaWNoIGNsdXN0ZXJzIGFyZSBteWVsb2lkIGNlbGxzPyAKbXllbG9pZCA8LSBzdWJzZXQoaW50ZWdyYXRlZC5zZXVyYXQsIGhhcm1vbnkuY2x1c3RlcnMgJWluJSBjKCIwIiwgIjYiLCAiMTMiLCAiMTciLCAiMTkiKSkKCkRpbVBsb3QobXllbG9pZCwgcmVkdWN0aW9uID0gInVtYXAuaGFybW9ueSIsIGdyb3VwLmJ5ID0gInByZWRpY3Rpb24iLCBsYWJlbD1UUlVFKQpEaW1QbG90KG15ZWxvaWQsIHJlZHVjdGlvbiA9ICJ1bWFwLmhhcm1vbnkiLCBncm91cC5ieSA9ICJoYXJtb255LmNsdXN0ZXJzIiwgbGFiZWw9VFJVRSkKCiMgcmUtY2x1c3RlciB0aGUgc3Vic2V0IChOT1RFIFRIRSBPQkpFQ1QgQ0FOTk9UIEJFIEpPSU5FRCBBTFJFQURZIE9SIElUIFdPTidUIFBST1BFUkxZIENMVVNURVIpCgpEZWZhdWx0QXNzYXkobXllbG9pZCkgPC0gIlJOQSIKbXllbG9pZCA8LSBGaW5kVmFyaWFibGVGZWF0dXJlcyhteWVsb2lkKQpteWVsb2lkIDwtIFJ1blBDQShteWVsb2lkKQpteWVsb2lkIDwtIFJ1blVNQVAobXllbG9pZCwgcmVkdWN0aW9uID0gInBjYSIsIGRpbXMgPSAxOjQwKQoKbXllbG9pZCA8LSBGaW5kTmVpZ2hib3JzKG15ZWxvaWQsIHJlZHVjdGlvbiA9ICJoYXJtb255IiwgZGltcyA9IDE6NDApCm15ZWxvaWQgPC0gRmluZENsdXN0ZXJzKG15ZWxvaWQsIHJlc29sdXRpb24gPSAwLjIpCm15ZWxvaWQKCkRpbVBsb3QobXllbG9pZCwgcmVkdWN0aW9uID0gInVtYXAiLCBncm91cC5ieSA9ICJzZXVyYXRfY2x1c3RlcnMiKQpEaW1QbG90KG15ZWxvaWQsIHJlZHVjdGlvbiA9ICJ1bWFwIiwgZ3JvdXAuYnkgPSAicHJlZGljdGlvbiIpCgp0YWJsZShteWVsb2lkJHByZWRpY3Rpb24pCgpgYGAKCgoKCgoKCgoKCgoKCgoKCgoKIyMgU3Vic2V0IG91dCBqdXN0IHRoZSBteWVsb2lkIGxpbmVhZ2UgY2VsbHMKYGBge3J9CnRhYmxlKGludGVncmF0ZWQuc2V1cmF0JHByZWRpY3Rpb24pCgpteWVsb2lkIDwtIHN1YnNldChpbnRlZ3JhdGVkLnNldXJhdCwgcHJlZGljdGlvbiAlaW4lIGMoImRlbmRyaXRpYyBjZWxsIiwgIm1hY3JvcGhhZ2UiLCAibW9ub2N5dGUiKSkKCkRpbVBsb3QobXllbG9pZCwgcmVkdWN0aW9uID0gInVtYXAuaGFybW9ueSIsIGdyb3VwLmJ5ID0gInByZWRpY3Rpb24iLCBsYWJlbD1UUlVFKQoKIyByZS1jbHVzdGVyIHRoZSBzdWJzZXQgKE5PVEUgVEhFIE9CSkVDVCBDQU5OT1QgQkUgSk9JTkVEIEFMUkVBRFkgT1IgSVQgV09OJ1QgUFJPUEVSTFkgQ0xVU1RFUikKCkRlZmF1bHRBc3NheShteWVsb2lkKSA8LSAiUk5BIgpteWVsb2lkIDwtIEZpbmRWYXJpYWJsZUZlYXR1cmVzKG15ZWxvaWQpCm15ZWxvaWQgPC0gUnVuUENBKG15ZWxvaWQpCm15ZWxvaWQgPC0gUnVuVU1BUChteWVsb2lkLCByZWR1Y3Rpb24gPSAicGNhIiwgZGltcyA9IDE6NDApCgpteWVsb2lkIDwtIEZpbmROZWlnaGJvcnMobXllbG9pZCwgcmVkdWN0aW9uID0gImhhcm1vbnkiLCBkaW1zID0gMTo0MCkKbXllbG9pZCA8LSBGaW5kQ2x1c3RlcnMobXllbG9pZCwgcmVzb2x1dGlvbiA9IDAuMikKbXllbG9pZAoKdGFibGUobXllbG9pZCRoYXJtb255LmNsdXN0ZXJzKQoKRGltUGxvdChteWVsb2lkLCByZWR1Y3Rpb24gPSAidW1hcCIsIGdyb3VwLmJ5ID0gInNldXJhdF9jbHVzdGVycyIpCkRpbVBsb3QobXllbG9pZCwgcmVkdWN0aW9uID0gInVtYXAiLCBncm91cC5ieSA9ICJwcmVkaWN0aW9uIikKCmBgYAoKCmBgYHtyfQpzYXZlKG15ZWxvaWQsIGZpbGUgPSBoZXJlKCJkYXRhL215ZWxvaWQucmRzIikpCgpzZXNzaW9uSW5mbygpCmBgYAoKCgoKCgoKCgoK